package File.创建对象;

// 目标: 掌握File创建对象, 代表具体文件的方案

import java.io.File;

public class Test {
    public static void main(String[] args) {
        // 构造器
        // 1. public File(String pathname): 根据文件路径创建文件对象

        // 2. public File(String parent, String child): 根据父路径和子路径名字创建文件对象

        // 3. public File(File parent, String child): 根据父路径对应文件对象和子路径名字创建文件对象

        // 1. 创建一个File对象, 指代某个具体的文件.(三种方式都可以)
//        File f1 = new File("D:\\particular\\pat.txt"); // 常用
//        File f1 = new File("D:/particular/pat.txt");
        File f1 = new File("D:" + File.separator + "particular" + File.separator + "pat.txt");  // File.separator是指分隔符, 代表电脑决定的分隔符, 用于跨屏台访问文件
        System.out.println(f1.length());// 文件的大小(字节数)

        File f2 = new File("D:\\particular");// 不仅可以访问文件, 还可以访问文件夹
        System.out.println(f2.length()); // 这里的大小不是整个文件夹的大小, 而是文件夹本身的大小

        // 注意: File对象可以指代一个不存在的文件路径
        File f3 = new File("D:\\particular\\aaa.txt");
        System.out.println(f3.length());
        System.out.println(f3.exists()); // false   exists(): 判断调用者是否存在, 存在返回true, 反之返回false

        // 我现在要定位的文件是在模块中, 应该怎么定位呢?
        // 绝对路径: 带盘符(不建议使用绝对路径)
        //File file = new File("C:\\Users\\20555\\Desktop\\intellij idea\\Fundamentals_of_Facing_Objects\\Senior\\src\\it");
        // 相对路径: (重点) : 不带盘符, 默认是直接去工程下寻找文件的
        File file = new File("Senior\\src\\it"); //写法: 把前面的盘符删了, 删到该工程路径
        System.out.println(file.length());
    }
}
